#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

//int main()
//{
//    char str1[100];
//    char str2[100];
//    scanf("%[^\n]%*c", str1);
//    scanf("%[^\n]%*c", str2);
//    char t[100];
//    char* p;
//    while (p = strstr(str1, str2))
//    {
//        strcpy(t, p + strlen(str2));
//        *p = '\0';
//        strcat(str1, t);
//    }
//    printf("%s", str1);
//}

//int main()
//{
//    char str1[101];
//    char str2[101];
//    int N;
//    char* p;
//    scanf("%[^\n]%*c", str1);
//    scanf("%d", &N);
//    N %= strlen(str1);
//    p = &str1[N];
//    for (int i = 0; i < N; i++)
//        str2[i] = str1[i];
//    printf("%s%s", p, str2);
//}

int main()
{
    char s[500000], tmp[500000];
    scanf("%[^\n]%*c", s);
    long len = strlen(s);
    int k = 0, space = 0;
    for (long i = len - 1; i >= 0; i--)
        if (s[i] == ' ')
        {
            if (k != 0)
            {
                if (space != 0)
                    printf(" ");
                else
                    space = 1;
                for (int j = k - 1; j >= 0; j--)
                    printf("%c", tmp[j]);
            }
            memset(tmp, 0, k);
            k = 0;
        }
        else
        {
            tmp[k++] = s[i];
        }
    if (k != 0)
    {
        if (space != 0)
            printf(" ");
        while (k--)
            printf("%c", tmp[k]);
    }
    return 0;
}